package cn.hl.delay;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;

import java.nio.charset.StandardCharsets;

/**
 * 发送延迟消息
 */
public class Producer {

    public static void main(String[] args) throws Exception{
        // 1.实例化消息生产者Producer
        DefaultMQProducer producer = new DefaultMQProducer("producer_delay_group");
        // 2.设置NameServer的地址
        producer.setNamesrvAddr("localhost:9876");
        // 3.启动Producer实例
        producer.start();
        // 4.创建消息，并指定Topic:一级主题，Tag：二级主题和消息体
        Message msg = new Message("topic_delay","tag_delay","你好，延迟消息!".getBytes(StandardCharsets.UTF_8));
        // 5.发送消息到一个Broker
        msg.setDelayTimeLevel(3);
        SendResult sendResult = producer.send(msg);
        // 6.通过sendResult返回消息是否成功送达
        System.out.printf("%s%n", sendResult);
        // 7.如果不再发送消息，关闭Producer实例。
        producer.shutdown();
    }
}
